/*
 * @copyright: Huang Ding
 * @Author: ding-cx
 * @Date: 2021-10-19 11:23:39
 * @LastEditors: ding-cx
 * @LastEditTime: 2022-06-15 16:41:24
 * @Description: file content
 */
import { actions, audioFile } from "./actions";
import { hc } from "../hc";
import BaseHttpService from "./BaseHttpService";

/**
 * note 机器配置注意点：在海清后台上把声音设置中的 远程控制播放声音 项要取消勾选。才能正常使用以下接口。
 */
export default class AudioService extends BaseHttpService {



  /** 获取一个机器的播放文件数量和文件名 */
  async getAllAudioList() {
    const list = await this.request<hc.http.getAudioList>(actions.GetAudio, { info: {} });
    // console.log(list);
    if (list && list.info && list.info.AudioNum >= 0) {
      return list;
    }
    return null;
  }

  /**
   *播放指定文件声音
   *
   * @param {string} [audioName="welcome.wav"] 要播放的声音文件名称
   */
  async playOneAudio(audioName: audioFile) {
    const body: hc.http.playOneAudio = {
      operator: actions.SetAudio,
      info: {
        DeviceID: this.device.deviceId,
        AudioType: 0,
        AudioName: audioName,
      },
    };
    const res = await this.request<hc.http.response>(actions.SetAudio, body);
    // console.log(res);
    if (!res) return false;
    if (res.code === 200) {
      // 播放成功！
      return true;
    } else {
      // 播放失败！
      this.app.logger.error("机器播放声音失败 %j %j", this.device.ip, res.info.Detail);
      return false;
    }
  }

}
